﻿using System;
using System.Collections.Generic;
using System.Text;

namespace EEDS.Core
{
    public sealed class GamePalettes
    {
        private static Palette[] palettes;

        public static Palette[] Palettes
        {
            get
            {
                if (GamePalettes.palettes == null)
                {
                    List<Palette> palettes = new List<Palette>();

                    palettes.Add(MarioKartDS);
                    palettes.Add(AnimalCrossingWildWorld01);
                    palettes.Add(AnimalCrossingWildWorld02);
                    palettes.Add(AnimalCrossingWildWorld03);
                    palettes.Add(AnimalCrossingWildWorld04);
                    palettes.Add(AnimalCrossingWildWorld05);
                    palettes.Add(AnimalCrossingWildWorld06);
                    palettes.Add(AnimalCrossingWildWorld07);
                    palettes.Add(AnimalCrossingWildWorld08);
                    palettes.Add(AnimalCrossingWildWorld09);
                    palettes.Add(AnimalCrossingWildWorld10);
                    palettes.Add(AnimalCrossingWildWorld11);
                    palettes.Add(AnimalCrossingWildWorld12);
                    palettes.Add(AnimalCrossingWildWorld13);
                    palettes.Add(AnimalCrossingWildWorld14);
                    palettes.Add(AnimalCrossingWildWorld15);
                    palettes.Add(AnimalCrossingWildWorld16);

                    GamePalettes.palettes = palettes.ToArray();
                }

                return GamePalettes.palettes;
            }
        }

        public static Palette MarioKartDS
        {
            get
            {
                return new Palette(Game.MarioKartDS, "Emblem Palette", new int[] { -16711936, -16777216, -16756456, -2049, -16711681, -8092028, -16776969, -9746143, -8118025, -589824, -3276660, -1075696, -566793, -12388, -524544, 16777215 });
            }
        }

        public static Palette AnimalCrossingWildWorld01
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 1", new int[] { -3268575, -1083087, -16896, -1063168, -1577216, -2687232, -9707735, -16726206, -16732474, -15175169, -11917073, -7583266, -4908875, -16777216, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld02
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 2", new int[] { -31100, -8333, -182, -174, -157, -3211504, -5374093, -9699419, -11864065, -8660993, -7041281, -1597697, -24833, -8681861, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld03
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 3", new int[] { -5963776, -4378624, -2721536, -3238400, -5919232, -8667648, -11880936, -16742904, -16754300, -16768826, -15204163, -11925356, -7077781, -16777216, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld04
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 4", new int[] { -14576062, -9707644, -7536715, -16740765, -12994916, -8661034, -16754284, -14575922, -10832145, -10262083, -10856019, -13551476, -15198101, -16777142, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld05
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 5", new int[] { -7046855, -4350398, -2177165, -5951439, -1087158, -27013, -8699533, -5932619, -1593617, -4359821, -5412518, -7585487, -9232360, -11403264, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld06
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 6", new int[] { -48896, -27103, -10373, -2164, -9230336, -5410494, -20869, -4163, -16218369, -10830081, -8656897, -3737601, -11380390, -16777216, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld07
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 7", new int[] { -15153375, -12982487, -9179302, -5374043, -16777010, -12432897, -10259969, -4344065, -3274752, -1095350, -34412, -1065291, -10858158, -16777216, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld08
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 8", new int[] { -16773087, -15714247, -12415381, -4851770, -14610391, -10280927, -4368062, -1067388, -5934782, -2187710, -1056901, -1050674, -11376269, -16248791, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld09
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 9", new int[] { -15724289, -61416, -2697472, -10857985, -44710, -2697390, -7565569, -29044, -2697332, -5918977, -20819, -1054811, -10264221, -16777216, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld10
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 10", new int[] { -15688184, -14569729, -7058953, -12403134, -11876353, -4876545, -10823829, -7540737, -3232001, -7544915, -4325377, -2699265, -10264221, -16777216, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld11
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 11", new int[] { -1638400, -14592, -248, -14035176, -16736760, -13531450, -14602067, -7587609, -40465, -6515176, -6545375, -12447720, -11380398, -16777216, -1 });
            }
        }

        public static Palette AnimalCrossingWildWorld12
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 12", new int[] { -4270, -15677696, -42752, -16776969, -7601987, -1585400, -16736768, -2740224, -16777010, -11927420, -7043584, -16746240, -6549504, -16777060, -13041590 });
            }
        }

        public static Palette AnimalCrossingWildWorld13
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 13", new int[] { -61424, -1059072, -55098, -16722028, -16750336, -3274736, -4348416, -3266412, -16738726, -15714296, -8122360, -8691456, -7600038, -16752327, -16242688 });
            }
        }

        public static Palette AnimalCrossingWildWorld14
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 14", new int[] { -1058858, -2177082, -3756371, -4348251, -5927276, -7046789, -8099477, -9219750, -10862270, -11915215, -13033439, -14088184, -15204352, -15728640, -16777216 });
            }
        }

        public static Palette AnimalCrossingWildWorld15
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 15", new int[] { -1, -1052689, -2170914, -3223602, -4868427, -5921115, -7039340, -8092028, -9737877, -10856102, -11908790, -13553615, -14606303, -15724528, -16777216 });
            }
        }

        public static Palette AnimalCrossingWildWorld16
        {
            get
            {
                return new Palette(Game.AnimalCrossingWildWorld, "Pattern Palette 16", new int[] { -299150, -2415077, -1142991, -854213, -16287738, -14552540, -16702015, -13260298, -4758060, -420873, -7070464, -25017, -275072, -16777216, -1 });
            }
        }

        private GamePalettes() { }
    }
}
